ปฎิทิน

style:italic;">
200
Code Calendar by zalim-code.com

วันพุธที่ 11 กุมภาพันธ์ พ.ศ. 2558

บทที่5 การพัฒนาโครงงานคอมพิวเตอร์

     โครงงานคอมพิวเตอร์เป็นการนำความรู้ด้านการเขียนโปรแกรม หรือการใช้ซอฟต์แวร์ประยุกต์ เพื่อผลิตผลงานสำหรับการแก้ปัญหา หรือนำผลงานมาประยุกต์ในงานจริง การทำโครงงานจะต้องใช้ความรู้ ประสบการณ์ และการศึกษาค้นคว้า เพื่อวางแผนและดำเนินการพัฒนา โดยสามารถเลือกใช้เครื่องมือพัฒนาที่เป็นซอฟต์แวร์ประยุกต์หรือภาษา คอมพิวเตอร์ตามความเหมาะสมของชิ้นงาน ทั้งนี้ควรขอคำปรึกษาจากครูผู้สอน หรือผู้ทรงคุณวุฒิ เป้าหมายสูงสุดของการทำโครงงานคือ การนำโครงงานไปใช้งาน และก่อให้เกิดประโยชน์ในชีวิตจริง
     โครงงานคอมพิวเตอร์มีหลายประเภท ขึ้นอยู่กับมุมมองในการพิจารณา เช่น วัตถุประสงค์การนำไปใช้ หรือกระบวนการในการสร้างผลผลิต โดยทั่วไปโครงงานคอมพิวเตอร์สามารถแบ่งได้ดังนี้
     ๑.๑) สื่อเพื่อการศึกษา
                เป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาสื่อการเรียนการสอน โดยอาจสร้างเป็นโปรแกรมบทเรียน หรือบทเรียนออนไลน์ ที่อาจมีแบบฝึกหัดหรือคำถามเพื่อทดสอบ โครงงานประเภทนี้สามารถพัฒนาขึ้นเพื่อประกอบการเรียนการสอนในเนื้อหาวิชา ต่าง ๆ เช่น บทเรียนออนไลน์เรื่องเทคโนโลยีสารสนเทศสมัยใหม่ บทเรียนออนไลน์เรื่องชุดกล่องสมองกล หนังสือเรียนอิเล็กทรอนิกส์เรื่องสำนวนสุภาษิต
 



     ๑.๒) พัฒนาเครื่องมือ
                 โครงงานพัฒนาเครื่องมือเป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาโปรแกรม ช่วยงานด้านต่าง ๆ เช่น โปรแกรมพิมพ์งาน โปรแกรมวาดรูป โปรแกรมสร้างภาพเคลื่อนไหว โปรแกรมคำนวณภาษี
        ๑.๓) จำลองทฤษฎี(ทดลองทฤษฎี)  โครงงานจำลองทฤษฎีเป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาโครงงานเพื่อจำลอง การทดลองทฤษฎีในด้านต่าง ๆ เช่น การทดลองเรื่องการไหลของของเหลว การจำลองการเคลื่อนที่ตามกฎข้อที่ ๒ ของนิวตัน การจำลองการตกของวัตถุ

     ๑.๔) โปรแกรมประยุกต์  โครงงานประยุกต์เป็นโครงงานที่นำคอมพิวเตอร์มาประยุกต์ร่วมกับอุปกรณ์อื่นใน การสร้าง หรือประดิษฐ์สิ่งของที่เป็นประโยชน์ หรือปรับปรุงเครื่องมือที่มีอยู่เดิมให้มีประสิทธิภาพสูงขึ้น ตัวอย่างโครงงานตรวจสอบควันพิษในอากาศ โครงงานบ้านอัตโนมัติ

     ๑.๕) เกม โครงงานเกมเป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาโปรกรมเกมเพื่อการศึกษา เพื่อความบันเทิง โดยเกมที่พัฒนาขึ้นจะเน้นการใช้สมองในการฝึกความคิดอย่างมีหลักการ ตัวอย่างโครงงาน เช่น เกมทายคำศัพท์ ตะลุยมหันตภัยโลกร้อน


ประโยชน์ของการทำโครงงานคอมพิวเตอร์
     ๑) ได้เรียนรู้แนวทางการแก้ปัญหาที่เกิดจากการทำโครงงาน
     ๒) ส่งเสริมกระบวนการคิด การแก้ปัญหา และการตัดสินใจ
     ๓) ได้รับประสบการณ์ในการใช้คอมพิวเตอร์เพื่อแก้ปัญหา
     ๔) ส่งเสริมให้ใช้เวลาอย่างเป็นประโยชน์และสร้างสรรค์
๒. ขั้นตอนการทำโครงงาน
      ๒.๑ การเลือกหัวข้อโครงงาน หัวข้อโครงงานได้มาจากความ ต้องการความสนใจในการแก้ปัญหา หรือประยุกต์ใช้ในการดำเนินชีวิตประจำวัน สังเกตสิ่งที่อยู่รอบตัว หรือศึกษาจากโครงงานที่มีผู้พัฒนาแล้วและนำแนวทางมาพัฒนาต่อ ตั้งชื่อให้สอดคล้องกับเนื้อหา กระชับ น่าสนใจ ตัวอย่างหัวข้อโครงงาน เช่น
โครงงานเครื่องเตือนภัยน้ำท่วมโครงงานเครื่องคิดเลขอัจฉริยะโครงงานตรวจสอบควันพิษในอากาศโครงงานสื่อออนไลน์พันธุ์ไม้ในโรงเรียน
      ๒. ๒ การศึกษาค้นคว้าหาข้อมูลที่เกี่ยวกับโครงงาน แหล่งข้อมูลมีหลายแหล่ง เช่น หนังสือ วารสาร อินเทอร์เน็ต ผู้เชี่ยวชาญ รวมทั้งศึกษาจากโครงงานที่คล้ายกัน ที่มีผู้พัฒนามาก่อนหน้าแล้ว ส่ิงสำคัีญคือ การอ้างอิงแหล่งที่มาและไม่คัดลอกผลงานผู้อื่น
                           เกร็ดน่ารู้  การนำข้อมูลจากเว็บไซต์ต้องพิจารณาถึงความน่าเชื่อถือของแหล่งผู้ให้ข้อมูล และควรหาข้อมูลจากหลายแหล่งแล้วทำการวิเคราะห์ข้อมูลก่อนนำไปใช้
      ๒.๓ การจัดทำข้อเสนอโครงงาน เป็นการกำหนดกรอบแนวคิด และวางแผนการพัฒนาโครงงาน รวมถึงตารางกำหนดการ ระยะเวลาที่ต้องทำงาน เพื่อช่วยให้สามารถคาดการณ์ความเป็นไปได้ในการทำโครงงาน โดยนำเสนอที่ปรึกษาหรือผู้ทรงคุณวุฒิที่เกี่ยวข้องให้ช่วยพิจารณาความเป็นไป ได้ของการทำโครงงานั้น
                       สำหรับที่ปรึกษาหรือผู้ทรงคุณวุฒิ หมายถึง ผู้ที่มีความรู้และความเชี่ยวชาญในเนื้อหาที่จะทำโครงงาน สำหรับในที่นี้ที่ปรึกษาโครงงาน คือ ครูผู้สอนรายวิชาพื้นฐาน เทคโนโลยีสารสนเทศและการสื่อสาร และที่ปรึกษาโครงงานร่วม คือ ผู้สอนรายวิชาอื่น ๆ เช่น วิทยาศาสตร์ คณิตศาสตร์ สังคมศึกษา เป็นต้นตัวอย่างหัวข้อข้อเสนอโครงงานคอมพิวเตอร์ ดังนี้
ข้อเสนอโครงงานคอมพิวเตอร์
ชื่อโครงงาน (ภาษาไทย)………………
ชื่อโครงงาน (ภาษาอังกฤษ)………………
ประเภทโครงงาน………..
ชื่อผู้ทำโครงงาน………….
ชื่อที่ปรึกษาโครงงาน…………
ชื่อที่ปรึกษาโครงงานร่วม…………
ระยะเวลาดำเนินงาน……….
ที่มาและความสำคัญของโครงงาน (อธิบายถึงแนวคิดและเหตุผลของการทำโครงงาน)
……………………………..
วัตถุประสงค์ (สิ่งที่ต้องการในการทำโครงงาน ระบุเป็นข้อ)
…………………………..
ขอบเขตโครงงาน (คุณลักษณะ ขอบเขต เงื่อนไข และข้อจำกัดของการทำโครงงาน)
…………………………..หลักการและทฤษฎี (ความรู้ หลักการ หรือทฤษฎีที่สนับสนุนการทำโครงงาน)……………………………….วิธีการดำเนินงาน
(กำหนดแนวทางการดำเนินงาน เครื่องมือ และอุปกรณ์ งบประมาณ และขั้นตอนการปฏิบัติงาน)
แนวทางการดำเนินงาน………………..
เครื่องมือและอุปกรณ์……………….
งบประมาณ………………………….
ขั้นตอนการปฏิบัติงาน
ภาคเรียนที่……..ปีการศึกษา…………

ที่

กิจกรรม/รายการปฏิบัติ

ระยะเวลาการดำเนินการ (เดือน)

ผู้รับผิดชอบ

หมายเหตุ






















ผลที่คาดว่าจะได้รับ (ผลลัพธ์ที่ต้องการให้เกิดขึ้นเมื่อสิ้นสุดการทำโครงงาน)
………………..
แหล่งอ้างอิง (เอกสารหรือแหล่งข้อมูลต่าง ๆ ที่นำมาใช้ในการทำโครงงาน)
…………………………
      ๒.๔ การจัดทำโครงงาน ในขั้นตอนนี้มีการเตรียมคอมพิวเตอร์ ซอฟต์แวร์ และวัสดุอุปกรณ์ให้ครบถ้วน โดยต้องคำนึงถึงความประหยัด คุ้มค่า และมีจิตสำนึกรับผิดชอบต่อสังคม เช่น ถ้าใช้ซอฟต์แวร์ฟรีต้องศึกษาถึงข้อกำหนดในการใช้ซอฟต์แวร์นั้นแล้วปฏิบัติ ตามให้ถูกต้อง แต่ถ้าใช้ซอฟต์แวร์เชิงพาณิชย์ก็จัดหาให้ถูกต้องตามกฎหมาย เพื่อไม่ทำให้เกิดผลเสียกับตนเองและผู้อื่น
                   หลังจากจัดเตรียมวัสดุอุปกรณ์เรียบร้อยแล้ว ให้ดำเนินการตามตารางเวลาการทำงานอย่างเคร่งครัด ระหว่างทำโครงงานต้องบันทึกผลการทำงานเพื่อติดตามความก้าวหน้า ปัญหา อุปสรรค รวมถึงวิธีแก้ไข และควบคุมการปฏิบัติงานให้เป็นไปตามระยะเวลาที่กำหนด มีการตรวจสอบความถูกต้องของโครงงานตามแผนการดำเนินงานอย่างสม่ำเสมอ
      ๒.๕ การเขียนรายงาน ในขั้นตอนนี้เป็นการจัดทำเอกสาร รายละเอียดทั้งหมดในการพัฒนา และคู่มือการใช้งาน เพื่อเผยแพร่และใช้ในการพัฒนาโครงงานต่อไป เป็นประโยชน์สำหรับผู้ที่ต้องการศึกษาหาความรู้หรือต้องการทำโครงงานที่ คล้ายกัน สามารถเรียนรู้จากประสบการณ์ที่ได้บันทึกไว้ การเขียนรายงานต้องใช้ภาษาที่อ่านง่าย

บทที่4การเขียนโปรแกรมภาษา
     เนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์ (computer  algorithms)  เพื่อเป็นการให้ความรู้พื้นฐานก่อนการเขียนโปรแกรมคอมพิวเตอร์  รวมถึงเนื้อหาเกี่ยวกับโครงสร้างภายในโปรแกรมซึ่งจะประกอบด้วยเนื้อหาเกี่ยวกับลักษณะของโปรแกรมแบบโครงสร้าง  และรูปแบบโครงสร้างภายในโปรแกรม  เพื่อช่วยให้ผู้เขียนโปรแกรมสามารถเลือกใช้คำสั่งให้สอดคล้องกับโครงสร้างภายในโปรแกรมได้  ซึ่งรายละเอียดของแต่ละเนื้อหามีดังต่อไปนี้
1.1 ขั้นตอนวิธีการทางคอมพิวเตอร์  (computer  algorithms)            ก่อนที่เราจะเขียนโปรแกรมคอมพิวเตอร์ภาษาใดภาษาหนึ่งเพื่อแก้ปัญหาทางคอมพิวเตอร์  เราควรศึกษาขั้นตอนวิธีการทางคอมพิวเตอร์   เพื่อให้เกิดความรู้ความเข้าใจที่ถูกต้องตามขั้นตอนวิธีดังนี้
            1) การวิเคราะห์งาน  (job analysis)
            2) การเขียนผังงานโปรแกรม  (program flowcharting)
            3) การเขียนโปรแกรม  (programming)
            4) การทดสอบ  และแก้ไขโปรแกรม  (testing and editing program)
            5) การจัดทำเอกสารประกอบ  และการบำรุงรักษาโปรแกรม  (documentation and maintenance program)
            1.1.1 การวิเคราะห์งาน  (job  analysis)                        ในการวิเคราะห์งานเราจะต้องกำหนดจุดประสงค์ของการวิเคราะห์งาน  และขั้นตอนวิธีการวิเคราะห์งานแต่ละอย่างให้ได้  ซึ่งงานแต่ละอย่างมีรายละเอียดดังนี้
                        1.1.1.1  จุดประสงค์ของการวิเคราะห์งาน                                    ในการวิเคราะห์งานแต่ละอย่างมีจุดประสงค์ของการวิเคราะห์งานที่สำคัญดังนี้
                                    1. เพื่อหาวัตถุประสงค์ของการเขียนโปรแกรม
                                    2. เพื่อหารูปแบบผลลัพธ์ที่ต้องการ
                                    3. เพื่อหาข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรม
                                    4. เพื่อหาตัวแปรที่จำเป็นต้องใช้ในโปรแกรม
                                    5. เพื่อหาขั้นตอนวิธีการทำงานของโปรแกรม
                        1.1.1.2 ขั้นตอนวิธีการวิเคราะห์งาน                                    ในการวิเคราะห์งานแต่ละอย่างมีขั้นตอนวิธีการวิเคราะห์งานที่สำคัญดังนี้
                       1) การหาวัตถุประสงค์ของการเขียนโปรแกรมผู้เขียนโปรแกรมจะต้องหาวัตถุประสงค์จากงานที่จะเขียนโปรแกรมว่า ต้องการเขียนโปรแกรมเพื่อแก้ปัญหาอะไรบ้างซึ่งจะทำให้เขียนโปรแกรมได้ตรงกับความต้องการหรือวัตถุประสงค์ของงานนั้น ๆ    
                       2) การหารูปแบบผลลัพธ์ที่ต้องการเมื่อผู้เขียนโปรแกรมหาวัตถุประสงค์ของการเขียนโปรแกรมได้แล้ว ขั้นตอนต่อมาคือการกำหนดรูปแบบผลลัพธ์ที่ต้องการจากโปรแกรม  ซึ่งรูปแบบผลลัพธ์อาจอยู่ในลักษณะของข้อความหรือตัวเลข  หรือตาราง   หรือแผนภูมิ   หรืออาจใช้ผสมกันระหว่างตัวเลขกับข้อความ หรือข้อความกับตัวเลข  และตารางก็ได้   ขึ้นอยู่กับผู้เขียนโปรแกรมเป็นผู้กำหนดเอง    แต่โดยส่วนมากนิยมแสดงผลลัพธ์ของโปรแกรมให้อยู่ในรูปแบบที่เข้าใจง่ายมากกว่ารูปแบบที่ซับซ้อน
                       3) การหาข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรมผู้เขียนโปรแกรมจะต้องหาข้อมูลนำเข้าจากผลลัพธ์ที่ได้จากโปรแกรม โดยคำนึงถึงขั้นตอนวิธีการคำนวณ และข้อมูลที่จำเป็นต้องใส่เข้าไปเพื่อให้ได้ผลลัพธ์ที่ต้องการ
            ตัวอย่างที่  1.1  ผลลัพธ์ที่ต้องการ  คือ  พื้นที่สามเหลี่ยมมุมฉากข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรมคือ
                        1) สูตรคำนวณพื้นที่สามเหลี่ยมมุมฉาก
                                    พื้นที่สามเหลี่ยมมุมฉาก  =  ? x ฐาน x สูง
                        2) ความยาวของฐานและความสูงของรูปสามเหลี่ยม
                       4) การหาตัวแปรที่จำเป็นต้องใช้ในโปรแกรมตัวแปร  หมายถึง  ชื่อที่ผู้เขียนโปรแกรมสามารถตั้งขึ้นเองตามหลักการตั้งชื่อตัวแปรของภาษาคอมพิวเตอร์ที่นำมาเขียนโปรแกรม (หลักเกณฑ์การตั้งชื่อตัวแปรกล่าวไว้ในหัวข้อ 2.5.3.1)  เพื่อใช้ในการอ้างอิงการเก็บข้อมูลและเรียกใช้ข้อมูลภายในตัวแปร   ดังนั้นผู้เขียนโปรแกรมจะต้องตั้งชื่อตัวแปรที่ใช้ในการเก็บข้อมูลทั้งหมดภายในโปรแกรม   รวมถึงตัวแปรบางตัวที่ใช้ในการนับจำนวนรอบของการทำงานในโปรแกรมอีกด้วย


จากตัวอย่างที่  1.1  สามารถแสดงการวิเคราะห์งานตั้งแต่ขั้นตอนที่  1  ถึง  4  ได้ดังนี้

            1) วัตถุประสงค์ของการเขียนโปรแกรม
            เพื่อคำนวณหาค่าพื้นที่สามเหลี่ยมมุมฉาก
            2) รูปแบบผลลัพธ์ที่ต้องการ
            พิมพ์ผลลัพธ์ที่ต้องการออกทางภาพดังนี้
                        * ** output ***
                        Base  =   5
                        High   =   4
                        Area   =   10
            3) ข้อมูลนำเข้า  คือ  ความยาวฐานและความสูง
            4) ตัวแปรที่ใช้
                        B  =  ตัวแปรที่เก็บความยาวของสามเหลี่ยมมุมฉาก    
                        H  =  ตัวแปรที่เก็บความสูงของสามเหลี่ยมมุมฉาก
                        Area  =    ตัวแปรที่เก็บผลลัพธ์ที่ได้จากการคำนวณตามสูตร
                        Area  =   1/2*B*H               หรือ         Area  =   0.5*B*H
                       
                       5) การหาขั้นตอนวิธีการทำงานของโปรแกรม
การหาขั้นตอนวิธีการทำงานของโปรแกรมจะขึ้นอยู่กับลักษณะของการแก้ปัญหา  ดังนั้นนักเขียนโปรแกรมที่มีความชำนาญในระดับหนึ่งแล้วจะสามารถหาขั้นตอนวิธีการทำงานของโปรแกรมได้โดยไม่ยาก แต่สำหรับผู้ที่เริ่มต้นศึกษาการเขียนโปรแกรม  ควรหาขั้นตอนวิธีการทำงานของโปรแกรมตามคำแนะนำโดยเรียงตามลำดับดังนี้
ขั้นตอนวิธีการทำงานของโปรแกรมที่แนะนำ

            5.1) เริ่มต้นทำงาน
            5.2) กำหนดค่าเริ่มต้นให้กับตัวแปร
            5.3) พิมพ์หัวรายงาน  (ถ้ามีรายงาน)
            5.4) รับข้อมูลเข้าทีละเรคอร์ด
            5.5) ตรวจสอบข้อมูลว่าเป็นชุดสุดท้ายหรือไม่
                        5.5.1  ถ้าเป็นข้อมูลชุดสุดท้าย   ให้ไปทำงานข้อ 5.11 
                        5.5.2 ถ้าไม่ใช่ข้อมูลชุดสุดท้าย  ให้ทำงานข้อต่อมา  (ข้อ 5.6)
            5.6) คำนวณผลลัพธ์
            5.7) เปรียบเทียบผลลัพธ์  (ถ้ามี)
            5.8) เพิ่มค่าตัวแปรสะสม  (ถ้ามี)
            5.9) พิมพ์ค่าผลลัพธ์ทีละเรคอร์ด
            5.10) ย้อนกลับไปทำงานข้อ 5.4
            5.11) พิมพ์สรุป  (ถ้ามี)
            5.12) จบการทำงาน
            ทั้งนี้การวิเคราะห์งานเพื่อแก้ปัญหาแต่ละอย่างอาจมีบางขั้นตอนแตกต่างกันไป  ดังนั้นคำแนะนำข้างต้นจึงเป็นเพียงแนวทางของการหาขั้นตอนวิธีการทำงานของโปรแกรมเท่านั้น    ซึ่งเวลาใช้งานจริงผู้วิเคราะห์งานต้องประยุกต์ให้เข้ากับปัญหาที่ต้องการแก้ไขต่อไป
            เพื่อความเข้าใจเกี่ยวกับขั้นตอนวิธีการวิเคราะห์งานมากยิ่งขึ้น    ให้ศึกษาจากตัวอย่างการวิเคราะห์งานดังต่อไปนี้
            ตัวอย่างที่  1.2 จงเขียนวิเคราะห์งาน เพื่อเขียนโปรแกรมคำนวณ พื้นที่สี่เหลี่ยมผืนผ้า จำนวน 1 รูป โดยที่ผู้ใช้โปรแกรม จะต้องป้อนความกว้าง และความยาวของสี่เหลี่ยมผืนผ้า เข้าไปในโปรแกรม
            วิธีทำ               ขั้นตอนการวิเคราะห์งานทั้ง  5  ขั้นตอน   สามารถแสดงได้ดังนี้
            1) วัตถุประสงค์ของการเขียนโปรแกรม
            เพื่อคำนวณพื้นที่สี่เหลี่ยมผืนผ้าจำนวน 1 รูป
            2) รูปแบบผลลัพธ์ที่ต้องการ
            พิมพ์ผลลัพธ์ออกทางจอภาพ   ดังนี้


            3) ข้อมูลนำเข้า
                        3.1) สูตรคำนวณพื้นที่สี่เหลี่ยมผืนผ้า
                                    Area  =   Width*Length
                        3.2) รับค่าความกว้างและความยาวของสี่เหลี่ยมผืนผ้าผ่านทางคีย์บอร์ด
            4) ตัวแปรที่ตั้งขึ้นเพื่อใช้ในโปรแกรม
                        Width   =  ตัวแปรที่ใช้เก็บความกว้างของสี่เหลี่ยมผืนผ้า 
                       Length  =  ตัวแปรที่ใช้เก็บความยาวของสี่เหลี่ยมผืนผ้า
                       Area = ตัวแปรที่ใช้เก็บพื้นที่ของสี่เหลี่ยมผืนผ้า  
                       โดยคำนวณได้จากสูตร    Area   =   Width*Length
            5) ขั้นตอนวิธีการทำงานของโปรแกรมมีดังนี้
                       5.1) เริ่มต้นทำงาน
                        5.2) รับข้อมูลค่าความยาวและความกว้างของสี่เหลี่ยมผืนผ้าผ่านทางคีย์บอร์ด
                        5.3) คำนวณพื้นที่สี่เหลี่ยมผืนผ้าตามสูตร 
                        Area = Width*Length
                        5.4) พิมพ์ค่าความยาว   ความกว้าง   และพื้นที่สี่เหลี่ยมผืนผ้าออกทางจอภาพ
                        5.5) จบการทำงาน
            1.1.2 การเขียนผังงานโปรแกรม  (program  flowcharting)สำหรับหัวข้อการเขียนผังงานโปรแกรมจะประกอบด้วยเนื้อหาที่สำคัญดังนี้คือ ความหมายของผังงาน  ประเภทของผังงาน  สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม  หลักการเขียนผังงานโปรแกรม  และขั้นตอนการเขียนผังงานโปรแกรม  ดังรายละเอียดต่อไปนี้
                        1.1.2.1 ความหมายของผังงาน                                    “ผังงาน”  (flowchart)  ทางคอมพิวเตอร์ หมายถึง แผนภาพที่เขียนขึ้นโดยใช้สัญลักษณ์มาตรฐาน เพื่อแสดงขั้นตอนวิธีการทำงานของโปรแกรม หรือระบบงานที่ต้องการ
                        1.1.2.2 ประเภทของผังงานผังงานสามารถจำแนกออกได้  2 ประเภท  คือ
                                    1) ผังงานระบบ (system flowchart)   หมายถึง   ผังงานที่แสดงถึงขั้นตอนวิธีการทำงานของระบบงานใดระบบหนึ่ง   ซึ่งในผังงานระบบจะแสดงให้เห็นถึงสื่อที่ใช้รับข้อมูล   บันทึกข้อมูล   วิธีการประมวลผล  ขั้นตอนการทำงานและความสัมพันธ์ของส่วนต่าง ๆ  ในระบบงานอย่างกว้าง ๆ  เพื่อให้เห็นภาพรวมของระบบงานใดระบบงานหนึ่ง  เช่น


รูปที่  1.1  ผังงานระบบแสดงการตัดเกรด
ที่มา : กรรณิการ์  กมลรัตน์, 2547.
                                    2) ผังงานโปรแกรม (program flowchart)    หมายถึงผังงานที่แสดงขั้นตอน วิธีการทำงานของโปรแกรมที่ต้องการเขียนขึ้น     ภายในผังงานโปรแกรม จะแสดงให้เห็นขั้นตอน วิธีการทำงาน ของโปรแกรมอย่างละเอียด เพื่อให้คอมพิวเตอร ์สามารถทำงานตามที่เขียนไว้ในผังงานโปรแกรม ได้อย่างถูกต้อง    โดยเราสามารถนำขั้นตอน วิธีการทำงานของโปรแกรมในขั้นการวิเคราะห์งาน มาเขียนเป็นผังงานโปรแกรมได้ทันที     จากนั้นก็สามารถนำผังงานโปรแกรม ไปเขียนโปรแกรมตามที่ต้องการได้   ดังนั้นในเรื่องของการเขียนผังงาน ที่จะกล่าวต่อไปนี้จะเกี่ยวข้องกับผังงานโปรแกรมทั้งสิ้น  เช่น


รูปที่  1.2  ผังงานโปรแกรมแสดงรายละเอียดการทำงานของโปรแกรมสำหรับตัดเกรด
ที่มา : เฉลิมพล  ทัพซ้าย, 2530 : 29.

                               1.2.1.3 สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรมสถาบันมาตรฐานแห่งชาติของสหรัฐอเมริกา (American  National  Standard  Institute) และองค์การระหว่างประเทศว่าด้วยการมาตรฐาน  (International  Organization  for  Standardization)  ได้ร่วมกันกำหนดสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม
โดยในเอกสารเล่มนี้จะนำเสนอสัญลักษณ์ที่นิยมนำมาใช้เขียนผังงานโปรแกรม ดังต่อไปนี้
            1. สัญลักษณ์  Process 
Process
             ความหมายของ  Process  คือ  การกำหนดค่าหรือการคำนวณค่า
            ตัวอย่างที่  1.3  แสดงการกำหนดค่าให้ตัวแปร  Total
             ตัวอย่างที่  1.4  แสดงการคำนวณค่าผลรวมของตัวแปร  Total

                                                    2. สัญลักษณ์  Decisionข้าวหลามตัด: Decision             ความหมายของ  Decision  คือ  การทดสอบเงื่อนไขหรือเปรียบเทียบเงื่อนไข เพื่อตัดสินใจทำงานอย่างใดอย่างหนึ่งตามที่ต้องการ

            ตัวอย่างที่  1.5  แสดงการเปรียบเทียบเงื่อนไข  1  ทางเลือก

             ตัวอย่างที่  1.6  แสดงการเปรียบเทียบเงื่อนไข  2  ทางเลือก
              3. สัญลักษณ์  Start/ Stop program  หรือ  Terminal Interruptแผนผังลำดับงาน: สิ้นสุด: Start / Stop  program             ความหมายของสัญลักษณ์  คือ  การเริ่มต้นโปรแกรม  หรือการสิ้นสุดการทำงานของโปรแกรม   หรือหยุดการทำงานชั่วคราว
            ตัวอย่างที่  1.7  แสดงการใช้งานสัญลักษณ์ Start/ Stop program  หรือ  Terminal Interrupt

                     4. สัญลักษณ์   Input / Outputสี่เหลี่ยมด้านขนาน:      Input / Output
            ความหมายของสัญลักษณ์  คือ  การรับข้อมูล (input)  หรือการแสดงผลลัพธ์  (output)  โดยไม่ได้ระบุสื่อที่ใช้             ตัวอย่างที่  1.8  แสดงการใช้งานสัญลักษณ์  Input/ Output

              5. สัญลักษณ์  Displayแผนผังลำดับงาน: จอภาพ:  Display                       
            ความหมายของสัญลักษณ์ คือ การแสดงผลลัพธ์ทางจอภาพ
            ตัวอย่างที่  1.9  แสดงการใช้งานสัญลักษณ์  display
             6. สัญลักษณ์  Documentแผนผังลำดับงาน: เอกสาร: Document

            ความหมายของสัญลักษณ์  คือ  การพิมพ์ผลลัพธ์ออกทางกระดาษพิมพ์
            ตัวอย่างที่  1.10  แสดงการใช้งานสัญลักษณ์  Document

            7. สัญลักษณ์  Manual  Inputแผนผังลำดับงาน: ป้อนข้อมูลด้วยตนเอง:     Manual  Input
            ความหมายของสัญลักษณ์  คือ  การรับข้อมูลหรือคำสั่งผ่านทางคีย์บอร์ด
            ตัวอย่างที่  1.11  แสดงการใช้งานสัญลักษณ์  Manual  Input
             8. สัญลักษณ์  Manual  Operationแผนผังลำดับงาน: ขั้นตอนที่ทำด้วยตนเอง: Manual  Operation
            ความหมายของสัญลักษณ์คือการรับข้อมูลหรือแสดงผลลัพธ์โดยไม่ระบุสื่อ
            ตัวอย่างที่  1.12  แสดงการใช้งานสัญลักษณ์  Manual  Operation
  
            9. สัญลักษณ์  Connector
Connector            ความหมายของสัญลักษณ์  คือ   แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน   โดยที่จุดเชื่อมต่อนี้อยู่ในหน้าเดียวกัน
            ตัวอย่างที่  1.13  แสดงการใช้งานสัญลักษณ์  Connector

                                                                     10. สัญลักษณ์  Off  page  Connector       Off  page  Connector
            ความหมายของสัญลักษณ์  คือ   แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน   โดยที่จุดเชื่อมต่อนี้อยู่ต่างหน้ากัน
            ตัวอย่างที่  1.14  แสดงการใช้งานสัญลักษณ์  Off  page  Connector

คำนวณค่า  Avg = Total + N เสร็จแล้ว  ไปทำงานต่อไปที่จุด  B  โดยที่จุด  B  อยู่ต่างหน้ากัน                                        11. สัญลักษณ์  flow line and arrowheads
            ความหมายของสัญลักษณ์ คือ แสดงทิศทาง การทำงานของผังงาน โดยใช้ลูกศร เป็นตัวกำหนดทิศทาง การทำงานของผังงาน
            ตัวอย่างที่  1.15  แสดงการใช้งานสัญลักษณ์  flow line and arrowheads
             12. สัญลักษณ์  Punched  Cardแผนผังลำดับงาน: บัตร: Punched  Card
            ความหมายของสัญลักษณ์คือการรับข้อมูลหรือแสดงผลลัพธ์บนบัตรเจาะรู
            ตัวอย่างที่  1.16  แสดงการใช้งานสัญลักษณ์  Punched  Card

                                                1.1.2.4 หลักการเขียนผังงานโปรแกรมการเขียนผังงานโปรแกรม   มีหลักการเขียนดังนี้
           1) เขียนผังงานจากด้านบนลงด้านล่าง
2) ใช้สัญลักษณ์ให้ตรงกับความหมายของผังงาน
3) ใช้เส้น flow line  และ arrowheads  แสดงทิศทางการทำงานของผังงาน
4) ใส่คำอธิบายลงในสัญลักษณ์สั้น ๆ แต่เข้าใจง่าย จะใช้ภาษาไทยหรืออังกฤษก็ได้
5) หลีกเลี่ยงการโยงเส้นทิศทางของผังงานให้ตัดกันเพราะจะทำให้สับสน   ควรใช้จุดเชื่อมต่อ (connector)  หน้าเดียวกันแทน  จะเข้าใจได้ง่ายและเป็นระเบียบ
6) พยายามเขียนผังงานให้จบในหน้ากระดาษเดียวกัน   แต่ถ้าไม่จบในหน้าเดียวกัน   ควรใช้จุดเชื่อมต่อต่างหน้ากระดาษ (off  page  connector)
                   1.1.2.5 ขั้นตอนการเขียนผังงานโปรแกรมเพื่อความเข้าใจเกี่ยวกับขั้นตอนการเขียนผังงานโปรแกรมได้ถูกต้องให้ศึกษาจากตัวอย่างดังต่อไปนี้
ตัวอย่างที่ 1.17 จงเขียนผังงานโปรแกรมที่ได้วิเคราะห์งานมาแล้วในตัวอย่าง
ที่ 1.2
วิธีทำ                                    จากการวิเคราะห์งานในตัวอย่างที่  1.2  จะได้ว่า                                    ขั้นตอนวิธีการทำงานของโปรแกรม   มีดังนี้
1) เริ่มต้นทำงาน
2) รับข้อมูลค่าความยาว  และความกว้างของสี่เหลี่ยมผืนผ้าผ่านทางคีย์บอร์ด
3) คำนวณพื้นที่สี่เหลี่ยมผืนผ้าตามสูตร  Area = Width * Length
4) พิมพ์ค่าความยาว ความกว้าง  และพื้นที่สี่เหลี่ยมผืนผ้าออกทาง จอภาพ
5) จบการทำงาน
           การเขียนผังงานโปรแกรม จะนำขั้นตอนวิธีการทำงานของโปรแกรม ที่ได้จากการวิเคราะห์งาน มาเขียนผังงานได้ดังนี้

รูปที่ 1.3  แสดงผังงานขั้นตอนวิธีการทำงานของโปรแกรม
ที่มา : สมชาย  รัตนเลิศนุสรณ์, 2545 : 17.
            1.1.3  การเขียนโปรแกรม  (programming)ในหัวข้อเรื่องการเขียนโปรแกรมจะกล่าวถึงเนื้อหา  2  ส่วน คือความหมายของโปรแกรมคอมพิวเตอร์  และภาษาคอมพิวเตอร์ดังมีรายละเอียดต่อไปนี้
                        1.1.3.1 ความหมายของโปรแกรมคอมพิวเตอร์โปรแกรมคอมพิวเตอร์ (computer  program)    หมายถึง     ชุดของคำสั่งที่เขียนขึ้นเพื่อสั่งให้คอมพิวเตอร์ทำงานตามที่ต้องการ    ส่วนการเขียนโปรแกรม (programming) หมายถึง การเขียนชุดคำสั่งด้วยภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง    เพื่อให้คอมพิวเตอร์ทำงานตามโปรแกรมที่เราเขียนขึ้น
                        ดังนั้น  ผู้เขียนโปรแกรม (programmer)  จึงจำเป็นต้องเรียนรู้ภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่งหรือหลายภาษา    แล้วฝึกฝนทักษะการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ที่ต้องการใช้งานให้เกิดความชำนาญจึงจะสามารถเขียนโปรแกรมคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ
                        1.1.3.2 ภาษาคอมพิวเตอร์ภาษาคอมพิวเตอร์ (computer  language)  หมายถึง  ภาษาที่สามารถนำมาใช้เขียนโปรแกรมคอมพิวเตอร์ได้   ซึ่งแต่ละภาษามีรายละเอียดดังต่อไปนี้
                         1) ภาษาเครื่อง (machine  language)                        ภาษาเครื่องจัดเป็นภาษาคอมพิวเตอร์ภาษาเดียวที่สามารถติดต่อกับคอมพิวเตอร์ได้โดยตรง    เพราะว่าการเขียนคำสั่งและข้อมูลในภาษาเครื่องใช้ระบบเลขฐานสอง (binary number system) คือใช้ตัวเลข 0  และ 1 เท่านั้น   ทำให้เครื่องคอมพิวเตอร์สามารถทำงานได้รวดเร็ว   ส่วนข้อเสียของภาษาเครื่อง  คือ  เครื่องคอมพิวเตอร์ต่างชนิดกันมีลักษณะการเขียนภาษาเครื่องที่แตกต่างกันไป  และเกิดความยุ่งยากในการปรับปรุงแก้ไข  ทำให้เกิดความไม่สะดวกในการใช้งาน    ดังนั้นภาษานี้จึงไม่เหมาะกับผู้เริ่มต้นเขียนโปรแกรม
ตัวอย่างที่  1.18  แสดงคำสั่งของภาษาเครื่องมีดังนี้  ถ้าเราต้องการสั่งให้เครื่องทำงานตามคำสั่ง  9 + 3  แสดงได้ดังนี้
การบวกแทนด้วยรหัส                          10101010
เลข  9  เปลี่ยนเป็นเลขฐานสอง            00001001
เลข  3  เปลี่ยนเป็นเลขฐานสอง            00000011
ดังนั้น  คำสั่ง  9 + 3  เขียนเป็นภาษาเครื่องได้ดังนี้
00001001   10101010   00000011                         2) ภาษาแอสเซมบลี (assembly  language)                        ภาษาแอสเซมบลีหรือจะเรียกชื่ออีกอย่างว่าภาษาระดับต่ำ  ซึ่งเป็นภาษาคอมพิวเตอร์ที่พัฒนาขึ้นมาเพื่อให้ผู้เขียนโปรแกรมสามารถเขียนโปรแกรมติดต่อกับคอมพิวเตอร์ได้ง่ายกว่าภาษาเครื่อง    ส่วนการเขียนคำสั่งในภาษาแอสเซมบลีจะใช้คำย่อของภาษาอังกฤษและอ้างถึงตำแหน่งที่อยู่ภายในคอมพิวเตอร์เป็นส่วนใหญ่  ได้แก่  MOVE, DC, DS, CL10 เป็นต้น    ผู้ที่ต้องใช้ภาษาแอสเซมบลีส่วนมากจะเป็นวิศวกรคอมพิวเตอร์  ดังนั้นภาษาแอสเซมบลีจึงไม่เหมาะกับผู้เริ่มต้นเขียนโปรแกรม
            ตัวอย่างที่  1.19  แสดงคำสั่งของภาษาแอสเซมบลีมีดังนี้  ถ้าเราต้องการสั่งให้เครื่องทำงานตามคำสั่ง  9 + 3  แสดงได้ดังนี้
                MOV   AX,  9                MOV   BX, 3                ADD   AX, BX                        3) ภาษาระดับสูง (high  level  language)                        ภาษาระดับสูงเป็นภาษาที่ผู้เขียนโปรแกรมสามารถเข้าใจได้ง่ายกว่าภาษาแอสเซมบลีและภาษาเครื่อง ทั้งนี้ก็เพราะการเขียนคำสั่งของภาษาระดับสูงมีลักษณะเป็นภาษาอังกฤษ    ซึ่งอ่านแล้วเข้าใจได้ง่ายกว่าภาษาแอสเซมบลี  เช่น  ใช้คำว่า  READ, WRITE, PRINT, COMPUTE  เป็นต้น    ตัวอย่างของภาษาระดับสูงได้แก่   ภาษาฟอร์แทรน (FORTRAN), ภาษาโคบอล (COBOL),  ภาษาเบสิก (BASIC), ภาษาปาสคาล (PASCAL)  และภาษาซี (C)   เป็นต้น  ซึ่งแต่ละภาษามีประวัติพอสังเขปดังต่อไปนี้
  • ภาษาฟอร์แทรน (FORTRAN  ย่อมาจาก  FORmula  TRANslator)  พัฒนาโดยบริษัท  IBM  ระหว่างปี ค.ศ.1954  ถึง  ค.ศ.1957  ภาษานี้ใช้สำหรับการพัฒนาโปรแกรมประยุกต์ด้านวิทยาศาสตร์และวิศวกรรมศาสตร์  ที่ต้องใช้ในการคำนวณสมการคณิตศาสตร์ที่ซับซ้อน  ปัจจุบันภาษาฟอร์แทรนยังเป็นที่นิยมใช้  ในการพัฒนาโปรแกรมด้านวิทยาศาสตร์และวิศวกรรมศาสตร์
  • ภาษาโคบอล (COBOL  ย่อมาจาก  Common  Business  Oriented  Language)  พัฒนาขึ้นในปี  ค.ศ.1959  เป็นภาษาที่พัฒนาขึ้นมาเพื่อใช้ในการพัฒนาโปรแกรมประยุกต์ด้านธุรกิจและการค้า  ปัจจุบันโปรแกรมที่ใช้ในด้านธุรกิจจำนวนมากยังเป็นโปรแกรมที่พัฒนามาจากภาษาโคบอล
  • ภาษาเบสิก  (BASIC ย่อมาจาก  Beginners  All-purpose  Symbolic  Instructional  Code)  เป็นภาษาที่พัฒนาขึ้นโดยมีจุดประสงค์เพื่อให้ผู้เริ่มต้นพัฒนาโปรแกรมสามารถเรียนรู้และเข้าใจการพัฒนาโปรแกรมอย่างง่าย  ภาษาเบสิกเป็นภาษาคอมพิวเตอร์ภาษาแรกที่ใช้เครื่องไมโครคอมพิวเตอร์
                                    ภาษาคอมพิวเตอร์ที่พัฒนาขึ้นในยุคแรก  ยังมีข้อจำกัดในการที่จะพัฒนาโปรแกรมขนาดใหญ่  ทั้งนี้เนื่องจากภาษาคอมพิวเตอร์เหล่านั้นขาดโครงสร้างที่ดี  ทำให้การพัฒนาโปรแกรมที่มีขนาดใหญ่และมีความซับซ้อนเป็นไปได้ยาก  ในช่วงต้นปี  ค.ศ.1970  จึงมีภาษาคอมพิวเตอร์ที่เป็นภาษาเชิงกระบวนการ (Procedural  หรือ  Structural  Language)  เกิดขึ้น  ภาษาคอมพิวเตอร์ประเภทนี้จะมีความยืดหยุ่นในการพัฒนาโปรแกรม  ทำให้สามารถแก้ไขและบำรุงรักษาได้ง่าย  เนื่องจากโปรแกรมถูกแยกออกเป็นส่วน ๆ ภาษาคอมพิวเตอร์ที่เป็นภาษาเชิงกระบวนการที่สำคัญคือ
  • ภาษาปาสคาล (Pascal) พัฒนาโดย  Niclaus  Wirth  ในปี ค.ศ.1971  โดยมีจุดประสงค์เพื่อใช้ในการสอนการเขียนโปรแกรมภาษาเชิงกระบวนการ  ในมหาวิทยาลัย  แต่เนื่องจากภาษาปาสคาลไม่มีคุณลักษณะที่จะสนับสนุนการพัฒนาโปรแกรมด้านธุรกิจและอุตสาหกรรมจึงไม่ได้รับความนิยมมากนัก
  • ภาษาซี (C)  พัฒนาขึ้นในช่วงเดียวกับภาษาปาสคาล  โดยนักวิจัยที่ห้องปฏิบัติการ  AT&T  Bell  ซึ่งได้นำเอาจุดเด่นของภาษา  BCPL  และภาษา  B  มาใช้และได้เพิ่มคุณลักษณะและชนิดข้อมูลอื่นเข้ามาด้วย  เดิมภาษาซีถือว่าเป็นภาษาคอมพิวเตอร์ที่สำคัญในการพัฒนาโปรแกรมบนระบบปฏิบัติการยูนิกส์  (Unix)  ซึ่งเป็นภาษาคอมพิวเตอร์ที่สามารถสร้างโปรแกรมประยุกต์ที่ทำงานได้รวดเร็วมาก  เมื่อเทียบกับภาษาคอมพิวเตอร์อื่น ๆ
                        4) ภาษาระดับสูงมาก  (very  high  level  language)                        ภาษาระดับสูงมาก   บางครั้งเรียกว่า  Fourth Gerneration Languages (4GLs)   เป็นภาษาที่มีลักษณะสำคัญ  คือ  ผู้เขียนโปรแกรมไม่ต้องบอกวิธีการทำงานโดยละเอียด   เพียงแต่ระบุคำสั่งให้ทำงานสั้น ๆ   ให้ภาษาระดับสูงมากเข้าใจก็เพียงพอ    ส่วนวิธีการคำนวณหรือการทำงานภาษาระดับสูงมากจะเป็นผู้จัดการเองทั้งสิ้น    บางครั้งเรียกว่า  non-procedure language
ตัวอย่างภาษาระดับสูงมาก  ได้แก่  ภาษา SQL (Structured  Query  Langauge) ซึ่งนิยมใช้กันในซอร์ฟแวร์พัฒนาระบบจัดการฐานข้อมูล   เช่น   ORACLE   เป็นต้น
                        5) ภาษาระดับธรรมชาติ  (natural   language)                        ภาษาธรรมชาติจะเกี่ยวข้องกับระบบฐานความรู้ (knowledge based system )  และกฎอ้างอิง  (inference rules)  เพียงแต่ผู้ใช้ภาษาธรรมชาติป้อนคำถามผ่านเข้าไปในคอมพิวเตอร์ที่มีภาษาธรรมชาติก็จะทำการวิเคราะห์คำถามแล้วไปค้นหาคำตอบจากระบบฐานความรู้ที่เก็บไว้
ตัวอย่างของภาษาธรรมชาติ  ได้แก่  ภาษา  PROLOG และภาษา LISP  (List  Processing Language)
            1.1.4 การทดสอบ และแก้ไขโปรแกรม  (testing  and  editing  program)            หลังจากที่เราเขียนโปรแกรมเสร็จแล้ว    ขั้นตอนต่อไป  คือ  การทดสอบโปรแกรมที่เขียนขึ้นซึ่งอาจพบความผิดพลาดได้  2  ชนิด   ดังนี้
                        1) ความผิดพลาดทางไวยากรณ์ภาษา (syntax  error)  เป็นความผิดพลาดที่เกิดจากการเขียนคำสั่งของภาษาคอมพิวเตอร์ผิด   ตัวอย่างเช่น    คำสั่ง  printf( )  ในภาษา C   ต้องเขียนด้วยตัวอักษรตัวเล็ก   แต่เขียนเป็น  PRINTF( )  เป็นต้น     โดยส่วนมากความผิดพลาดทางไวยากรณ์    จะถูกตรวจสอบพบเมื่อมีการแปลโปรแกรม (compile)  ให้เป็นภาษาเครื่อง  ซึ่งเราสามารถแก้ไขโดยการเขียนคำสั่งให้ถูกต้องตามไวยากรณ์ของภาษานั้น ๆ
                        2) ความผิดพลาดทางตรรกะ (logical  error)  เป็นความผิดพลาดที่เกิดจากการลำดับการทำงานผิดหรือป้อนสูตรคำนวณผิด ตัวอย่างเช่น ต้องการหาค่า  X = X + Y แต่ป้อนสูตรเป็น X = X * Y  อย่างนี้  เป็นต้น  วิธีการตรวจหาความผิดพลาดแบบนี้    คือ    ตรวจสอบการคำนวณผลลัพธ์ของโปรแกรมว่าตรงกับผลลัพธ์ที่คำนวณด้วยมือหรือเครื่องคิดเลขหรือไม่    ถ้าไม่ตรงกันแสดงว่าเกิดความผิดพลาดทางตรรกะขึ้น    วิธีการแก้ไขก็คือ  การแก้ไขสูตรให้ถูกต้อง หรือแก้ไขลำดับการทำงานให้ถูกต้อง
ดังนั้น  จะเห็นได้ว่าผู้เขียนโปรแกรมจะต้องทำการทดสอบโปรแกรมและแก้ไขโปรแกรมให้สามารถทำงานได้ตามที่ต้องการ
            1.1.5 การจัดทำเอกสารประกอบ และการบำรุงรักษาโปรแกรม (documentation  and  maintenance  program)            เมื่อผู้เขียนโปรแกรมได้ทำการทดสอบโปรแกรมและแก้ไขความผิดพลาดที่เกิดขึ้นเรียบร้อยแล้ว ขั้นตอนต่อไปก็ควรจัดทำคู่มือการใช้โปรแกรม    เพราะจะทำให้ผู้ใช้โปรแกรมสามารถใช้งานได้ถูกต้อง    โดยคู่มือการใช้โปรแกรมที่ดีควรจัดทำในลักษณะที่แสดงการทำงานเป็นขั้นตอน    ผู้ใช้โปรแกรมสามารถปฏิบัติตามได้จริง  ส่วนการบำรุงรักษาโปรแกรมที่พัฒนาขึ้นก็ต้องมีคำแนะนำให้ผู้ใช้โปรแกรมปฏิบัติ    ตัวอย่างเช่น    การเก็บโปรแกรมต้นฉบับ     ควรเก็บไว้ในกล่องที่มิดชิด     ป้องกันฝุ่นได้     ไม่ควรเก็บไว้บนโต๊ะทำงาน     ไม่ควรเก็บไว้ในรถยนต์เพราะอาจถูกอากาศร้อนทำให้เสียได้       นอกจากนี้ต้องมีการสำเนาโปรแกรมต้นฉบับเอาไว้    อย่างน้อย  1  ชุด  แล้วนำชุดที่สำเนาไปใช้    ไม่ควรใช้โปรแกรมต้นฉบับโดยตรง    ควรเก็บเอาไว้สำหรับกรณีที่โปรแกรมสำเนาเกิดปัญหาจะได้นำโปรแกรมต้นฉบับมาทำสำเนาและใช้งานได้ทันที


บทที่3การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ

 การแก้ปัญหาด้วยกระบวนการสารสนเทศ
การแก้ปัญหามีหลายวิธี ขึ้นกับชนิดของาน วิธีการแก้ปัญหาอย่างหนึ่งอาจแก้ปัญหาอีกอย่างหนึ่งไม่ได้ และการแก้ปัญหาอาจจำเป็นต้องใช้เทคโนโลยีสารสนเทศหรือไม่ก็ได้ ดังนั้น จึงควรยึดหลักการแก้ปัญหาอย่างเป็นระบบ เพื่อไม่ให้เสียเวลา หลงทาง และสับสน วิธีการแก้ปัญหาแต่ละวิธีมีความเหมาะสมกับงานแตกต่างกันไป ก่อนที่จะใช้วิธีแก้ปัญหา ด้วยกระบวนการทางเทคโนโลยีสารสนเทศ จะขอยกวิธีการแก้ปัญหาอย่างมีขั้นตอนโดยทั้วไป มาให้พิจารณาดูจำนวนหนึ่ง

                                                                 

1.1 หลักการแก้ปัญหาตามวิธีวิทยาศาสตร์ ( Scientific method ) วิธีการแก้ปัญหาทางวิทยาศาสตร์เป็นวิธีที่มีมานานมากแล้ว ซึ่งใช้ศึกษาค้นคว้าความรู้ใหม่ๆ ตั้งแต่หลายร้อยปีก่อน จนเกิดความก้าวหน้าทางวิทยาศาสตร์ด้านต่างๆ มากมายอย่างทุกวันนี้ หลักการแก้ปัญหา ทางวิทยาศาสตร์ มีดังนั้
1. เก็บข้อมูลเบื้องต้น โดยการศึกษา สังเกตเหตุการณ์หรือปรากฎการณ์ทางธรรมชาติ
2. ตั้งสมมิฐานเกี่ยวกับสาเหตุ แนวความคิด หรือทฤษฎี ของการเกิดปรากฎการณ์และทางการแก้ปัญหา
3. พัฒนาการวิธีการที่จะทดสอบสมมติฐานหรือทฤษฎีตามข้อ 2
4. ทำการทดลองเพื่อพิสูจน์สมมติฐานหรือทฤษฎี โดยตั้งวัตถุประสงค์ให้ชัดเจน อาจมีการตั้งกลุ่มทดลองภายใต้การควบคุม เปรียบเทียบกับกลุ่มที่ไม่ควบคุม ทำการบันทึกผลการทดลองที่สังเกตพบไว้อย่างละเอียดแม่นยำ
5. วิเคราะห์ผลการทดลอง เพื่อหาคำตอบว่าสมมติฐานที่ตั้งไว้นั้นเป็นจริงหรือไม่
6. เขียนรายงานสรุปผลคำตอบที่ได้ผลที่ได้จากวิธีนี้เป็นที่ยอมรับกันมาก เนื่องจากเป็นวิธีที่พิสูจน์ได้ เห็นผลชัดเจน และ มีวัตถุประสงค์เด่นชัด แต่ผลที่ได้อาจขาดความคิดสร้างสรรค์ หรือบางครั้งสำหรับปัญหาง่ายๆ ก็ไม่จำเป็นต้องใช้ขั้นตอนมากมายเช่นนี้ และปัญหาบางอย่างก็อาจใช้ไม่ได้เลย เพราะทดลองไม่ได้
1.2 หลักการแก้ปัญหาตามวิธีการทางวิศวกรรม ( Engineering problem solving ) วิธีเหมาะกับการแก้ปัญหาในการออกแบบผลิตภัณฑ์ สินคัา หรือเพื่อสร้างสิ่งใหม่หรือเพื่อการแก้ปัญหาในเชิงวิศวกรรม มีขั้นตอนดังนี้
1. วิเคราะห์ปัญหา กำหนดรายละเอียดปัญหาให้ชัดเจนเป็นข้อๆ กำหนดความ ต้องการและข้อจำกัดในการแก้ปัญหาเป็นข้อๆวิเคราะห์ข้อมูลว่ามีข้อมูลใดที่มีอยุ่แล้วและใช้ได้อะไรคือสิ่งที่ยังไม่รู้และต้องการรู้
2. สร้างแบบจำลองวิธีการแก้ปัญหา ( Define model ) อาจเป็นแบบจำลองทางคณิตศาสตร์ หรือบางกรณีต้องสร้างแบบจำลองย่อส่วนจากของจริง คิดค้นหาสูตรสมการที่จะใช้แก้ปัญหา เก็บข้อมูลที่ต้องใช้แก้ปัญหา
3. คำนวณหาคำตอบโดยใช้แบบจำลอง วิธี และสมกาในข้อ 2 ตรวจสอบผลลัพธ์ที่ได้ว่าถูกต้องเหมาะสมหรือไม่
4. ผลลัพธ์หรือคำตอบที่ได้มีเหตุผลว่าถูกต้องเหมาะสม จึงนำไปปฏิบัติ
1.3 วิธีการแก้ปัญหาแบบสร้างสรรค์ ( Creative problem solving ) วิธีนี้เป็นวิธีแก้ปัญหาที่ใช้แนวคิดแบบสร้างสรรค์ สามารถนำไปใช้งานได้กว้างขวาง ซึ่งมีหลายวิธีเช่นกันในที่นี้ขอยกตัวอย่างวิธีของ Sidney J. Parness ดังนี้
1. ใช้ความสังเกตอย่างพินิจพิเคราะห์ คือให้ตื่นตัวตกใจ ใช้ตาดูหูฟัง เพื่อให้มองเห็นปัญหาต่าง ๆ ที่เกิดขึ้น และมองเห็นวิธีแก้ปัญหาที่อาจเป็นไปได้
2. ค้นหาความจริง โดยเก็บรวบรวมข้อมูล เช่น ทำการศึกษา ทดลอง หรือทำวิธีใดๆที่เหมาะสม
3. ค้นหาปัญหา เพื่อดูว่าปัญหาที่แท้จริงคืออะไร สาเหตุของการเกิดคืออะไร
4. ค้นหาแนวความคิดในการแก้ปัญหา โดยการคิดค้นวิธีการแก้ปัญหาหลายๆวิธีที่อาจใช้ได้ อย่าเพิ่งด่วนสรุปวิธีนั้นวิธีนี้ดีที่สุด ทำการประเมินและปรับปรุงแนวคิดให้ดีขึ้น
5. ค้นหาวิธีการแก้ปัญหาที่เหมาะสม โดยการกำหนดเกณฑ์ในการเลือกวิธีใดวิธีหนึ่งจากวิธีที่คิดไว้หลายๆวิธี เช่น เลือวิธีที่เร็ว ราคาถูก และดีเพียงพอกับความต้องการ
6. ค้นหาวิธีการยอมรับวิธีแก้ปัญหาที่เลือกไว้ โดยหาวิธีที่จะทำให้ตนเองและผู้เกี่ยวข้องยอมรับวิธีแก้ปัญหาที่เลือกไว้ร่วมกัน และตกลองแก้ปัญหาด้วยวิธีนั้นข้อเสียของวิธีนี้คือ ไม่กล่าวถึงวิธีการนำไปปฏิบัติ หรือการทดสอบวิธีการแก้ปัญหาที่
เลือกไว้ก่อนนำไปใช้จริง แต่มีจุดเด่นตรงที่ชาวยสรางแนวทางการแก้ปัญหาที่หลากหลาย ที่ผู้ใช้เลือกได้โดยอิสระ
1.4 การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ การแก้ปัญหาที่ซับซ้อนด้วยวิธีการต่างๆ ที่กล่าวมาแล้ว ส่วนมากจำเป็นต้องใช้เทคโนโลยีสารสนเทศเข้าช่วยเพื่อเพิ่มความรวดเร็ว ถูกต้อง และสามารถทำซ้ำได้ง่าย ในกระบวนการทางเทคโนโลยีสารสนเทศเข้าช่วยแก้ปัญหา จำเป็นต้องปรับรูปแบบวิธีการทำงานให้เหมาะสมกับการใช้เทคโนโลยีสารสนเทศ
วิธีการแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เป็นวิธีคล้ายกับการแก้ปัญกาทางวิศวกรรมมาก แต่ในการนำระบบคอมพิวเตอร์ไปใช้ในการแก้ปัญหา หรือเพิ่มประสิทธิภาพในการทำงานใดๆ ก็ตาม จะต้องมีการวิเคราะห์ปัญหาและศึกษาความเป็นไปได้ให้รอบคอบเสียก่อน ทั้งนี้เนื่องจากคอมพิวเตอร์ไม่ใช้เครื่องมือวิเศษที่จะแก้ปัญหได้ทุกเรื่อง
นอกจากนี้ยังจะต้องมีการศึกษาถึงความคุ้มค่าในการลงทุน เพื่อไม่ให้เป็นการลงทุนที่เสียเปล่า ต้องเลือกวิธีการแก้ปัญหาให้เหมาะสมกับงาน จัดหาเครื่องมือและเทคโนโลยีที่ไม่เกินความจำเป็น
การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เหมาะกับระบบงานที่ต้องทำงานอย่างใดอย่างหนึ่งซึ่งซากและมีปริมาณงานมากหรืองานที่ต้องการความรวดเร็วในการคำนวณเกินกว่าคนธรรมดาจะทำได้ วิธีการโดยทั้วไปคือ ปรับเปลี่ยนวิธีการหรือระบบการทำงานแบบเดิม มาใช้ระบบงานที่มีเครื่องคอมพิวเตอร์ช่วยทำงานเป็นบางส่วน หรือทั้งหมด เท่าที่สามารถจะทำแทนคนได้
ดังนั้น การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ จึงต้องมีการสร้างระบบงานคอมพิวเตอร์ขึ้นมาช่วยทำงานอย่างหลีกเลี่ยงไม่ได้ วิธีการโดยทั้วไป เราอาจไม่ต้องสร้างระบบงานทั้งหมดขึ้นใหม่ แต่พัฒนาระบบงานเดิมให้เป็นระบบงานที่ทำงานโดยคอมพิวเตอร์นิยมเรียกกันว่า การพัฒนาระบบงานคอมพิวเตอร์
1.4.1 ขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์ ตามหลักวิชาว่าด้วยการวิเคราะห์และออกแบบระบบงาน ( System analysis and design ) มีการจัดขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์และสารสนเทศดังนี้
1. วิเคราะห์ระบบงานหรือปัญหา ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่ต้องใช้ โดยการศึกษาระบบงานเดิมอย่างละเอียด
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีให้ได้ผลตามความต้องการ
5. ออกแบบโปรแกรม ( Program design )
6.เขียนชุดคำสั่ง ( Coding )
7. ทดสอบโปรแกรม ( Testing ) และหาที่ผิดพลาด ( Debuugging )
8. นำโปรแกรมและระบบงานไปใช้งานจริง ( Implementation oroperation )
9. บำรุงรักษา ติดตามผล แก้ไขปรับปรุง ( Software maintenance and improvement ) เพื่อให้ทันสมัยใช้ได้ตลอดไป จะเห็นว่าการพัฒนาระบบสารสนเทศ จำเป็นจะต้องรู้ขั้นตอนวิธีการทำงานของระบบเดิม ตามด้วยการหาวิธีการแก้ปัญหาโดยใช้ระบบคอมพิวเตอร์และโปรแกรม จากนั้นจึงออกแบบวิธีการทำงานในระบบใหม่ให้ระเอียดซึ่งจะต้องมีการสร้างโปรแกรมคอมพิวเตอร์ขึ้นมาช่วยทำงานบางส่วน หรือทั้งหมด
1.4.2 ขั้นตอนการพัฒนาระบบงานโดยการจัดซื้อโปรแกรมสำเร็จรูป ในกรณีที่เราไม่ได้พัฒนาโปรแกรมเอง แต่เป็นการจัดซื้อโปรแกรมสำเร็จรูปมาใช้งาน เราอาจปรับเปลี่ยนขั้นตอนมาเป็นดังนี้
1. วิเคราะห์ปัญหาและระบบงานที่จะทำ ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่มีอยุ่
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีว่าให้ผลตรงกับที่ต้องการ
5. จัดหาโปรแกรมที่ทำงานตรงตามความต้องการ โดยการซื้อหรือจ้างทำ
6. นำโปรแกรมและระบบงานไปใช้จริง ( Implementation oroperation )
7. บำรุงรักษาระบบ ติดตามผลและแก้ไขปรับปรุง ( Software mainte-mance and improvement )
1.5 เครื่องมือในการวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา ในการออกแบบขั้นตอนวิธีการทำงานเพื่อการแก้ปัญหาต่างๆ หรือการเขียนโปรแกรม จำเป็นต้องใช้เครื่องมือบางอย่างช่วยในการออกแบบและวิเคราะห์วิธีการเพื่อให้ง่ายต่อการมองภาพกระบวนการทำงานของระบบ สามารถตรวจสอบหาที่ผิด รวมทั้งหาทางปรับปรุงให้ดีกว่าเดิมได้ เครื่องมือดังกล่าวที่ง่ายที่สุด ได้แก่ ผังงาน หรือโฟลชาร์ต ( Flowchart ) และรหัสจำลอง ( Pseudo Code )
1.5.1 ผังงาน ( Flowchart ) เป็นเครื่องมือช่วยออกแบบ และวิเคราะห์การทำงานของโปรอกรมแบบรูปภาพขั้นพื้นฐานที่สุด ช่วยให้สามารถมองเห็นภาพของความสัมพันธ์ระหว่างกระบวนการต่างๆ ของระบบงานหรือโปรแกรมได้ง่าย และสามารถตรวจสอบว่าวิธีการนั้น ถูกต้อง มีประสิทธิภาพในการทำงาน และมีความซับซ้อนหรือไม่ ทำให้นำไปเขียนเป็นโปรแกรมได้อย่างถูกต้องซึ่งเหมาะสมสำหรับผู้เริ่มต้นศึกษากลไกของโปรแกรมอย่างละเอียดรวมทั้งเพื่อเป็นการศึกษาคิดค้นขั้นตอนวิธี( algorithm ) ที่ละเอียดอ่อน และยังจัดว่าเป็นกระบวนการที่ไม่ใหญ่และซับซ้อนมากนัก ผังงานประกอบด้วยสัญลักษณ์
จุดเริ่มต้น / สิ้นสุดของโปรแกรม
ลูกศรแสดงทิศทางการทำงานของโปรแกรมและการไหลของข้อมูล
ใช้แสดงคำสั่งในการประมวลผล หรือการกำหนดค่าข้อมูลให้กับตัวแปร
แสดงการอ่านข้อมูลจากหน่วยเก็บข้อมูลสำรองเข้าสู่หน่วยความจำหลักภายในเครื่องหรือการแสดง ผลลัพธ์จากการประมวลผลออกมา
การตรวจสอบเงื่อนไขเพื่อตัดสินใจ โดยจะมีเส้นออกจารรูปเพื่อแสดงทิศทางการทำงานต่อไป เงื่อนไขเป็นจริงหรือเป็นเท็จ
แสดงผลหรือรายงานที่ถูกสร้างออกมา
แสดงจุดเชื่อมต่อของผังงานภายใน หรือเป็นที่บรรจบของเส้นหลายเส้นที่มาจากหลายทิศทางเพื่อ
จะไปสู่การทำงานอย่างใดอย่างหนึ่งที่เหมือนกัน
บทที่ 2 เครือข่ายคอมพิวเตอร์และอินเทอร์เน็ต
เครือข่ายคอมพิวเตอร์และอินเทอร์เน็ต

1. เครือข่ายคอมพิวเตอร์
   1.1. ความหมายและองค์ประกอบของเครือข่ายคอมพิวเตอร์
           เครือข่ายคอมพิวเตอร์ (computer net-work) หมายถึง การเชื่อมต่อคอมพิวเตอร์และอุปกรณ์ต่อพ่วงเข้าด้วยกันโดยใช้สื่อกลางต่างๆ
เครือข่ายคอมพิวเตอร์สามารถแบ่งออกได้ 6 ประเภท ดังนี้
      1. เครือข่ายเฉพาะที่ หรือแลน (local area network : LAN)
      2. เครือข่ายนครหลวง หรือแมน (metropolitan area network : MAN)
      3. เครือข่ายบริเวณกว้าง หรือแวน (wide area network : WAN)
      4. เครือข่ายภายในองค์กร หรืออินทราเน็ต (intranet)
      5. เครือข่ายภายนอกองค์กร หรือเอ็กทราเน็ต (extranet)
      6. เครือข่ายอินเทอร์เน็ต (internet)
   1.2. การเลือกใช้ฮาร์ดแวร์ของระบบเครือข่ายขนาดเล็ก
      1. อุปกรณ์ในระบบเครือข่ายขนาดเล็ก
         1.1. การ์ดแลน (LAN card) เป็นอุปกรณ์ที่ทำหน้าที่รับส่งข้อมูลจากคอมพิวเตอร์เครื่องหนึ่งไปสู่คอมพิวเตอร์อรกเครื่องหนึ่งโดยผ่านสายแลน
         1.2. ฮับ (hub) เป็นอุปกรณ์ที่ทำหน้าที่เสมือนกับชุมทางข้อมูล มีหน้าที่เป็นตัวกลางคอยส่งข้อมูลให้คอมพิวเตอร์ในเครือข่าย
         1.3. สวิตช์ (switch) เป็นอุปกรณ์รวมสัญญาณเช่นเดียวกับฮับ แต่ต่างจากฮับ คือ การรับส่งข้อมูลจากคอมพิวเตอร์เครื่องหนึ่งนั้นจะไม่กระจายไปยังทุกเครื่อง เนื่องจากข้อมูลจะตรวจสอบก่อนว่าเป็นของเครื่องใด แล้วจึงส่งไปยังปลายทาง
         1.4. โมเด็ม (modem) เป็นอุปกรณ์ที่ทำหน้าที่แปลงสัญญาณเพื่อให้สมมารถส่งผ่านสายโทรศัพท์ได้
         1.5. อุปกรณ์จัดเส้นทางหรือเราเตอร์ (router) เป็นอุปกรณ์ที่ใช้ในการเชื่อมโยงเครือข่ายหลายเครือข่ายเข้าด้วยกัน เราเตอร์ทำหน้าที่เลือกเส้นทางที่ดีที่สุด
         1.6. สายสัญญาณ (cable) เป็นอุปกรณ์ที่ทำหน้าที่เป็นสื่อกลางในการรับส่งข้อมูล
      2. การเชื่อมต่อระบบเครือข่ายขนาดเล็ก
         2.1. การเชื่อมต่อเครือข่ายระยะใกล้  หากมีคอมพิวเตอร์ในระบบเครือข่ายไม่เกินสองเครื่อง อุปกรณ์ในระบบเครือข่ายนอกจากเครื่องคอมพิวเตอร์แล้ว ยังต้องมีการ์ดแลนและสายสัญญาณ โดยไม่ต้องใช้ฮับและสวิตช์ เพราะถ้ามีคอมพิวเตอร์สองเครื่อง ก็สามารถเชื่อต่อโดยใช้สายไขว้ (cross line)
         2.2. การเชื่อมต่อเครือข่ายระยะไกล จากข้อกำจัดของเครือข่ายที่ใช้สายแลนที่ไม่สามารถเดินสายให้มีความยาวมากกว่า 100 เมตรได้ จึงต้องหาทางเลือกสำหรับระบบเครือข่ายระยะไกล ดังนี้
   - แบบที่ 1 คือ ต้องติดตั้งเครื่องทวนสัญญาณ (repeater) ไว้ทุกๆระยะ 100 เมตร
   - แบบที่ 2 คือ ใช้โมเด็มหมุนโทรศัพท์เข้าหากันเมื่อต้องการเชื่อมต่อ เละเมื่อเสร็จสิ้นก็ยกเลิกการเชื่อมต่อ
   - แบบที่ 3 คือ เป็นเทคโนโลยีที่มีประสิทธิภาพดีที่สุดในปัจจุบันสายสัญญาณที่เลือกใช้ คือ สายใยแก้วนำแสง สามารถส่งข้อมูลระยะไกลได้และมีความเร็วสูง
   - แบบที่ 4 คือ ใช้จุดเชื่อมต่อแบบไร้สาย (wireless lan) เป็นการเชื่อมต่อโดยใช้สัญญาณวิทยุทางอากาศแทนการใช้สายโทรศัพท์
   - แบบที่ 5 คือ เทคโนโลยี G.SHDSL ซึ่งเป็นหนึ่งในเทคโนโลยีตะกูล DSL (Digital Subscriber Line) เป็นเทคโนโลยีโมเด็มที่ทำให้คู่สายทองแดงกลายเป็นสื่อสัญญาณดิจิทัลความเร็วสูง
   - แบบที่ 6 คือ เทคโนโลยีแบบ ethernet over VDSL เป็นเทคโนโลยีระบบเครือข่ายแบบล่าสุดที่สามารถจะติดตั้งใช้งานได้เอง สามารถเชื่มอต่อใช้กับโทรศัพท์ได้
    1.3. การเลือกใช้ซอฟต์แวร์ของระบบเครือข่ายขนาดเล็ก  
      1. ระบบปฏิบัติการลินุกซ์ เซ็นโอเอส (Linux community enterprise operating system)
          นิยมเรียกย่อว่า CentOS ซึ่งช่วยประหยัดงบประมาณขององค์กร เนื่องจาก CentOS เป็นซอฟแวร์เปิดเผยโค้ด (open source software) ผู้ใช้สามารถดาวน์โหลดโค้ดไปใช้่งานโดยไม่ต้องจ่ายค่าลิขสิทธิ์ซอฟต์แวร์
       2. ระบบปฏิบัติการวินโดวส์ เซิร์ฟเวอร์ (Windows server) ปัจจุบันถูกพัฒนาเป็น windows Server 2008 ซึ่งออกแบบมาเพื่อนสนับสนุนระบบเครือข่าย แอพพลิเคชันและบริการอื่นๆ ที่มีความทันสมัยบนเว็บไซต์ โดยมีคุณสมบัติเด่น ดังนี้
       1. สร่างโครงสร้างพื้นฐานที่มั่นคงสำหรับภาระงานของเซิร์ฟเวอร์ รวมถึงความต้องการด้านแอพพลิเคชันต่างๆด้วย
       2. เวอร์ชวลไลเซซั่น (virtualization) เป็นการสร้างระบบเสมือนจริงที่มีรากฐานจากระบบ hypervisor ช่วยให้สามารถรวมเซิร์ฟเวอร์และใช้งานฮาร์ดแวร์ได้อย่างเต็มที่
       3. มีระบบจัดการและดูแลเว็บ และแอพพลิเคชันที่ได้รับการพัฒนามากขึ้น
       4. ระบบความปลอดภัย ได้รับการพัฒนาให้มีความทนทานมากขึ้น พร้อมทั้งผสานการใช้เทคโนโลยีด้าน IDA หลายชิ้น

2. อินเทอร์เน็ต
   2.1. ความหมายและพัฒนาการของอินเทอร์เน็ต
         อินเทอร์เน็ต (internet) มาจากคำว่า interconnection network หมายถึง การใช้ประโยชน์ของระบบเครือข่ายที่นำเครื่องคอมพิวเตอร์หลายๆ เครื่องมาเชื่อมต่อกันโดยผ่านสื่อกลางชนิดใดชนิดหนึ่ง
   2.2. บริการบนอินเทอร์เน็ต
      1. ไปรษณีย์อิเล็กทรอนิกส์ หรืออีเมล (electronic mail or e-mail) เนื่องจากในระบบเครือข่ายอินเทอร์เน็ตนั้นมีการเชื่อมต่อคอมพิวเตอร์หลายเครื่องเข้าด้วยกัน ทำให้การส่งข้อมูลระหว่างคอมพิวเตอร์ด้วยกันสามารถทำได้ง่าย
      2. เมลลิงลิสต์ (mailing list) เป็นเสมือนเครื่องมือที่ใช้กระจายข่าวสารและข้่อมูลเฉพาะกลุ่ม
      3. การสื่อสารในเวลาจริง (realtime communication) เป็นการสื่อสารกันที่สามารถโต้ตอบกลับได้ทันทีผ่านเครือข่ายอินเทอร์เน็ต เช่น แชท (chat)
      4. เว็บไซต์เครือข่ายทางสังคม (social networking web site) เป็นชุมชนออนไลน์ที่กลุ่มคนรวมกันเป็นสังคม เช่น facebook
      5. บล็อก (blog) ย่อมาจากคำว่า เว็บบล็อก (webblog) เป็นเว็บไซต์ที่ใช้เขียนบันทึกเรื่องราว เพื่อสื่อสารความรู้สึก มุมมอง เรียกว่า ไดอารี่ออนไลน์ (diary online)
      6. วิกิ (wiki) เป็นรูปแบบการเผยแพร่ข้อมูลที่บุคคลต่างๆ ที่มีความรู้ในแต่ละเรื่องมาให้ข้อมูล เช่น wikipedia
      7. บริการเข้าใช้ระบบคอมพิวเตอร์ระยะไกล (remote login/telnet) บริการนี้อนุญาตให้ผู้ใช้สามารถเข้าไปทำงานต่างๆ ที่อยู่ในคอมพิวเตอร์เครื่องหนึ่งผ่านทางคอมพิวเตอร์อีกเครื่องหนึ่งที่เชื่อมต่ออยู่ในเครือข่ายอินเทอร์เน็ต ไม่ว่าคอมพิวเตอร์เครื่องนั้นจะอยู่ใกล้หรือไกลกันก็ตาม
      8. การโอนย้ายข้อมูล (file transfer protocol : FTP) เป็นการถ่ายโอนแฟ้มข้อมูลจากคอมพิวเตอร์เครื่องหนึ่งไปยังคอมพิวเตอร์อีกเครื่องหนึ่ง ซึ่งอาจจะอยู่ใกล้หรือไกล
      9. บริการแลกเปลี่ยนข้อมูลข่าวสาร หรือ ยูสเน็ต (usenet) เป็นอีกบริการหนึ่งบนอินเทอร์เน็ต ซึ่งมีลักษณะเป็นกลุ่มสนทนา เพื่อแลกเปลี่ยนข่าวสารกันบนเครือข่ายอินเทอร์เน็ต
      10. เวิลด์ไวด์เว็บ (world wide web) ซึ่งอาจเรียกย่อว่า เว็บ (web) เป็นบริการเพื่อการค้นหาข้อมูลที่ได้รับความนิยมมากที่สุดของอินเทอร์เน็ตในปัจจุบัน เป็นการให้บริการข้อมูลแบบไฮเปอร์เท็กซ์ (hypertext) เป็นวิธีการที่จะเชื่อมโยงข้อมูลจากเอกสารหนึ่งไปข้อมูลของอีกเอกสารหนึ่ง
      11. พาณิชย์อิเล็กทรอนิกส์ (electronic commerce หรือ e-commerce) เป็นการทำธุรกรรมซื้อขายสินค้าและบริการบนเครือข่ายอินเทอร์เน็ต โดยนำเสนอสินค้าและบริการทางเว็บไซต์
   2.3. คุณธรรมและจริยธรรมในการใช้อินเทอร์เน็ต
      1. จรรยาบรรณในการใช้อินเทอร์เน็ต (netiquette)
      1.1. จรรยาบรรณสำหรับผู้ใช้ไปรษณีย์อิเล็กทรอนิกส์
      - ตรวจสอบกล่องรับไปรษณีย์ทุกวัน จำกัดจำนวนไฟล์และข้อมูลในตู้จดหมาย
      - ลบข้อความหรือจดหมายที่ไม่ต้องการทิ้ง
      - โอนย้ายจดหมายจากระบบไปไว้ยังเครื่องคอมพิวเตอร์ส่วนบุคคล
      - พึงระลึกไว้เสมอว่าจดหมายที่เก็บไว้ในตู้จดหมายนี้อาจถูกผู้อื่น
      - ไม่ควรจะส่งจดหมายกระจายไปยังผู้รับจำนวนมาก
      1.2. จรรยาบรรณสำหรับผูั้สนทนาผ่านเครือข่าย
   - ควรสนทนากับผู้ที่รู้จักและต้องการสนทนาด้วยเท่านั้น
   - ก่อนการเรียกคู่สนทนา ควรตรวจสอบสถานะการใช้งานของคู้สนทนาก่อน
   - หลังการเจรียกคู่สนทนาไปแล้ว ไม่ตอบกลับมาแสดงว่าเขาอาจติดธุระอยู่
   - ควรใช้วาจาสุภาพ
      1.3 จรรยาบรรณสำหรับผู้ใช้กระดานข่าวหรือกระดานสนทนา
   - เขียนเรื่องให้กระชับ ใช้ข้อความสั้น
   - ไม่ควรเขียนข้อความพาดพิงถึงสถาบันของชาติในทางที่ไม่สมควร
   - ให้ความสำคัญในเรื่องลิขสิทธิ์
   - ไม่ควรสร้างข้อความเท็จ
   - ไม่ควรใช้เครือข่ายส่วนรวมเพื่อใช้ประโยชน์ส่วนตน
      2. บัญญัติ 10 ประการในการใช้งานคอมพิวเตอร์
   1. ไม่ใช้คอมพิวเตอร์ทำร้ายผู้อื่น
   2. ไม่ใช้คอมพิวเตอร์รบกวนการทำงานของผู้อื่น
   3. ไม่เปิดดูข้อมูลในแฟ้มของผู้อื่นโดยไม่ได้รับอนุญาต
   4. ไม่ใช้คอมพิวเตอร์เพื่อการโจรกรรมข้อมูลข่าวสาร
   5. ไม่ใช้คอมพิวเตอร์สร้างหลักฐานที่เป็นเท็จ
   6. ไม่คัดลอกโปรแกรมของผู้อื่น
   7. ไม่ละเมิดการใช้ทรัพยากรคอมพิวเตอร์
   8. ไม่นำเอาผลงานคนอื่นมาเป็นของตัวเอง
   9. คำนึงถึงสิ่งที่จะเกิดขึ้นกับสังคมอันเป็นผลมาจากการกระทำของตน
   10. ต้องใช้คอมพิวเตอร์โดนเคารพกฎ ระเบียบ กติกา
       กฎหมายเกี่ยวกับเทคโนโลยีสารสนเทศ มี 6 ฉบับ ดังนี้
1 กฎหมายเกี่ยวกับธุรกรรมทางอิเล็กทรอนิกส์
2 กฎหมายเกี่ยวกับลายมือชื่ออิเล็กทรอนิกส์
3 กฎหมายเกี่ยวกับการคุ้มครองข้อมูลส่วนบุคคล
4 กฎหมายเกี่ยวกับการคุ้มครองข้อมูลส่วนบุคคล
5 กฎหมายว่าด้วยอาชญากรรมทางคอมพิวเตอร์
6 กฎหมายเกี่ยวกับการพัฒนาโครงสร้างพื้นฐานสารสนเทศ
      กฎหมายทางเทคโนโลยีสารสนเทศ
ธุรกรรมทางอิเล็กทรอนิกส์
ลายมือชื่ออิเล็กทรอนิกส์
โอนเงินทางอิเล็กทรอนิกส์
การคุ้มครองข้อมูลส่วนบุคคล
อาชญากรรมทางคอมพิวเตอร์
การพัฒนาโครงสร้างพื้นฐานสารสนเทศ